package com.zdxlz.fcmp.common.log.annotation;

import com.zdxlz.fcmp.common.core.constant.enums.OperateTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @description：日志记录注解
 * @author：aman
 * @date：2025/3/7 09:48
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface LogRecord {

    // 日志描述
    String value() default "";

    // 请求所属模块
    String module() default "";

    // 操作类型（1：新增 2：修改 3：删除 4：查询 5：发布消息 6：订阅消息 7：导入 8：导出 100：其他）
    OperateTypeEnum operType() default OperateTypeEnum.OTHER;

    // 日志等级
    String level() default "INFO";

    // 插入日志描述里面的字段
    String[] field() default {};

    // 是否发送邮件
    boolean email() default false;

    // 是否记录到数据库
    boolean db() default false;

}
